/** layui-v1.0.9_rls MIT License By http://www.layui.com */ ;
layui.define(function(e) {
	"use strict";
	var t = window,
		a = {
			path: "",
			skin: "default",
			format: "YYYY-MM-DD",
			min: "1900-01-01 00:00:00",
			max: "2099-12-31 23:59:59",
			isv: !1,
			init: !0
		},
		n = {},
		s = document,
		i = "createElement",
		o = "getElementById",
		l = "getElementsByTagName",
		d = ["laydate_box", "laydate_void", "laydate_click", "LayDateSkin", "skins/", "/laydate.css"];
	t.laydate = function(e) {
		return e = e || {}, n.run(e), laydate
	}, laydate.v = "1.1", n.trim = function(e) {
		return e = e || "", e.replace(/^\s|\s$/g, "").replace(/\s+/g, " ")
	}, n.digit = function(e) {
		return e < 10 ? "0" + (0 | e) : e
	}, n.stopmp = function(e) {
		return e = e || t.event, e.stopPropagation ? e.stopPropagation() : e.cancelBubble = !0, this
	}, n.each = function(e, t) {
		for(var a = 0, n = e.length; a < n && t(a, e[a]) !== !1; a++);
	}, n.hasClass = function(e, t) {
		return e = e || {}, new RegExp("\\b" + t + "\\b").test(e.className)
	}, n.addClass = function(e, t) {
		return e = e || {}, n.hasClass(e, t) || (e.className += " " + t), e.className = n.trim(e.className), this
	}, n.removeClass = function(e, t) {
		if(e = e || {}, n.hasClass(e, t)) {
			var a = new RegExp("\\b" + t + "\\b");
			e.className = e.className.replace(a, "")
		}
		return this
	}, n.removeCssAttr = function(e, t) {
		var a = e.style;
		a.removeProperty ? a.removeProperty(t) : a.removeAttribute(t)
	}, n.shde = function(e, t) {
		e.style.display = t ? "none" : "block"
	}, n.query = function(e) {
		if(e && 1 === e.nodeType) {
			if("input" !== e.tagName.toLowerCase()) throw new Error("选择器elem错误");
			return e
		}
		var t, e = n.trim(e).split(" "),
			a = s[o](e[0].substr(1));
		if(a) {
			if(e[1]) {
				if(/^\./.test(e[1])) {
					var i, d = e[1].substr(1),
						r = new RegExp("\\b" + d + "\\b");
					return t = [], i = s.getElementsByClassName ? a.getElementsByClassName(d) : a[l]("*"), n.each(i, function(e, a) {
						r.test(a.className) && t.push(a)
					}), t[0] ? t : ""
				}
				return t = a[l](e[1]), t[0] ? a[l](e[1]) : ""
			}
			return a
		}
	}, n.on = function(e, a, s) {
		return e.attachEvent ? e.attachEvent("on" + a, function() {
			s.call(e, t.even)
		}) : e.addEventListener(a, s, !1), n
	}, n.stopMosup = function(e, t) {
		"mouseup" !== e && n.on(t, "mouseup", function(e) {
			n.stopmp(e)
		})
	}, n.run = function(e) {
		var t = (n.query, e.elem);
		t && (d.elemv = /textarea|input/.test(t.tagName.toLocaleLowerCase()) ? "value" : "innerHTML", ("init" in e ? e.init : a.init) && !t[d.elemv] && (t[d.elemv] = laydate.now(null, e.format || a.format)), n.view(t, e), n.reshow())
	}, n.scroll = function(e) {
		return e = e ? "scrollLeft" : "scrollTop", s.body[e] | s.documentElement[e]
	}, n.winarea = function(e) {
		return document.documentElement[e ? "clientWidth" : "clientHeight"]
	}, n.isleap = function(e) {
		return e % 4 === 0 && e % 100 !== 0 || e % 400 === 0
	}, n.checkVoid = function(e, t, a) {
		var s = [];
		return e = 0 | e, t = 0 | t, a = 0 | a, e < n.mins[0] ? s = ["y"] : e > n.maxs[0] ? s = ["y", 1] : e >= n.mins[0] && e <= n.maxs[0] && (e == n.mins[0] && (t < n.mins[1] ? s = ["m"] : t == n.mins[1] && a < n.mins[2] && (s = ["d"])), e == n.maxs[0] && (t > n.maxs[1] ? s = ["m", 1] : t == n.maxs[1] && a > n.maxs[2] && (s = ["d", 1]))), s
	}, n.timeVoid = function(e, t) {
		if(n.ymd[1] + 1 == n.mins[1] && n.ymd[2] == n.mins[2]) {
			if(0 === t && e < n.mins[3]) return 1;
			if(1 === t && e < n.mins[4]) return 1;
			if(2 === t && e < n.mins[5]) return 1
		} else if(n.ymd[1] + 1 == n.maxs[1] && n.ymd[2] == n.maxs[2]) {
			if(0 === t && e > n.maxs[3]) return 1;
			if(1 === t && e > n.maxs[4]) return 1;
			if(2 === t && e > n.maxs[5]) return 1
		}
		if(e > (t ? 59 : 23)) return 1
	}, n.check = function() {
		var e = n.options.format.replace(/YYYY|MM|DD|hh|mm|ss/g, "\\d+\\").replace(/\\$/g, ""),
			t = new RegExp(e),
			a = n.elem[d.elemv],
			s = a.match(/\d+/g) || [],
			i = n.checkVoid(s[0], s[1], s[2]);
		if("" !== a.replace(/\s/g, "")) {
			if(!t.test(a)) return n.elem[d.elemv] = "", n.msg("日期不符合格式，请重新选择。"), 1;
			if(i[0]) return n.elem[d.elemv] = "", n.msg("日期不在有效期内，请重新选择。"), 1;
			i.value = n.elem[d.elemv].match(t).join(), s = i.value.match(/\d+/g), s[1] < 1 ? (s[1] = 1, i.auto = 1) : s[1] > 12 ? (s[1] = 12, i.auto = 1) : s[1].length < 2 && (i.auto = 1), s[2] < 1 ? (s[2] = 1, i.auto = 1) : s[2] > n.months[(0 | s[1]) - 1] ? (s[2] = 31, i.auto = 1) : s[2].length < 2 && (i.auto = 1), s.length > 3 && (n.timeVoid(s[3], 0) && (i.auto = 1), n.timeVoid(s[4], 1) && (i.auto = 1), n.timeVoid(s[5], 2) && (i.auto = 1)), i.auto ? n.creation([s[0], 0 | s[1], 0 | s[2]], 1) : i.value !== n.elem[d.elemv] && (n.elem[d.elemv] = i.value)
		}
	}, n.months = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], n.viewDate = function(e, t, a) {
		var s = (n.query, {}),
			i = new Date;
		e < (0 | n.mins[0]) && (e = 0 | n.mins[0]), e > (0 | n.maxs[0]) && (e = 0 | n.maxs[0]), i.setFullYear(e, t, a), s.ymd = [i.getFullYear(), i.getMonth(), i.getDate()], n.months[1] = n.isleap(s.ymd[0]) ? 29 : 28, i.setFullYear(s.ymd[0], s.ymd[1], 1), s.FDay = i.getDay(), s.PDay = n.months[0 === t ? 11 : t - 1] - s.FDay + 1, s.NDay = 1, n.each(d.tds, function(e, t) {
			var a, i = s.ymd[0],
				o = s.ymd[1] + 1;
			t.className = "", e < s.FDay ? (t.innerHTML = a = e + s.PDay, n.addClass(t, "laydate_nothis"), 1 === o && (i -= 1), o = 1 === o ? 12 : o - 1) : e >= s.FDay && e < s.FDay + n.months[s.ymd[1]] ? (t.innerHTML = a = e - s.FDay + 1, e - s.FDay + 1 === s.ymd[2] && (n.addClass(t, d[2]), s.thisDay = t)) : (t.innerHTML = a = s.NDay++, n.addClass(t, "laydate_nothis"), 12 === o && (i += 1), o = 12 === o ? 1 : o + 1), n.checkVoid(i, o, a)[0] && n.addClass(t, d[1]), n.options.festival && n.festival(t, o + "." + a), t.setAttribute("y", i), t.setAttribute("m", o), t.setAttribute("d", a), i = o = a = null
		}), n.valid = !n.hasClass(s.thisDay, d[1]), n.ymd = s.ymd, d.year.value = n.ymd[0] + "年", d.month.value = n.digit(n.ymd[1] + 1) + "月", n.each(d.mms, function(e, t) {
			var a = n.checkVoid(n.ymd[0], (0 | t.getAttribute("m")) + 1);
			"y" === a[0] || "m" === a[0] ? n.addClass(t, d[1]) : n.removeClass(t, d[1]), n.removeClass(t, d[2]), a = null
		}), n.addClass(d.mms[n.ymd[1]], d[2]), s.times = [0 | n.inymd[3] || 0, 0 | n.inymd[4] || 0, 0 | n.inymd[5] || 0], n.each(new Array(3), function(e) {
			n.hmsin[e].value = n.digit(n.timeVoid(s.times[e], e) ? 0 | n.mins[e + 3] : 0 | s.times[e])
		}), n[n.valid ? "removeClass" : "addClass"](d.ok, d[1])
	}, n.festival = function(e, t) {
		var a;
		switch(t) {
			case "1.1":
				a = "元旦";
				break;
			case "3.8":
				a = "妇女";
				break;
			case "4.5":
				a = "清明";
				break;
			case "5.1":
				a = "劳动";
				break;
			case "6.1":
				a = "儿童";
				break;
			case "9.10":
				a = "教师";
				break;
			case "10.1":
				a = "国庆"
		}
		a && (e.innerHTML = a), a = null
	}, n.viewYears = function(e) {
		var t = n.query,
			a = "";
		n.each(new Array(14), function(t) {
			a += 7 === t ? "<li " + (parseInt(d.year.value) === e ? 'class="' + d[2] + '"' : "") + ' y="' + e + '">' + e + "年</li>" : '<li y="' + (e - 7 + t) + '">' + (e - 7 + t) + "年</li>"
		}), t("#laydate_ys").innerHTML = a, n.each(t("#laydate_ys li"), function(e, t) {
			"y" === n.checkVoid(t.getAttribute("y"))[0] ? n.addClass(t, d[1]) : n.on(t, "click", function(e) {
				n.stopmp(e).reshow(), n.viewDate(0 | this.getAttribute("y"), n.ymd[1], n.ymd[2])
			})
		})
	}, n.initDate = function() {
		var e = (n.query, new Date),
			t = n.elem[d.elemv].match(/\d+/g) || [];
		t.length < 3 && (t = n.options.start.match(/\d+/g) || [], t.length < 3 && (t = [e.getFullYear(), e.getMonth() + 1, e.getDate()])), n.inymd = t, n.viewDate(t[0], t[1] - 1, t[2])
	}, n.iswrite = function() {
		var e = n.query,
			t = {
				time: e("#laydate_hms")
			};
		n.shde(t.time, !n.options.istime), n.shde(d.oclear, !("isclear" in n.options ? n.options.isclear : 1)), n.shde(d.otoday, !("istoday" in n.options ? n.options.istoday : 1)), n.shde(d.ok, !("issure" in n.options ? n.options.issure : 1))
	}, n.orien = function(e, t) {
		var a, s = n.elem.getBoundingClientRect();
		e.style.left = s.left + (t ? 0 : n.scroll(1)) + "px", a = s.bottom + e.offsetHeight / 1.5 <= n.winarea() ? s.bottom - 1 : s.top > e.offsetHeight / 1.5 ? s.top - e.offsetHeight + 1 : n.winarea() - e.offsetHeight, e.style.top = Math.max(a + (t ? 0 : n.scroll()), 1) + "px"
	}, n.follow = function(e) {
		n.options.fixed ? (e.style.position = "fixed", n.orien(e, 1)) : (e.style.position = "absolute", n.orien(e))
	}, n.viewtb = function() {
		var e, t = [],
			a = ["日", "一", "二", "三", "四", "五", "六"],
			o = {},
			d = s[i]("table"),
			r = s[i]("thead");
		return r.appendChild(s[i]("tr")), o.creath = function(e) {
			var t = s[i]("th");
			t.innerHTML = a[e], r[l]("tr")[0].appendChild(t), t = null
		}, n.each(new Array(6), function(a) {
			t.push([]), e = d.insertRow(0), n.each(new Array(7), function(n) {
				t[a][n] = 0, 0 === a && o.creath(n), e.insertCell(n)
			})
		}), d.insertBefore(r, d.children[0]), d.id = d.className = "laydate_table", e = t = null, d.outerHTML.toLowerCase()
	}(), n.view = function(e, t) {
		var o, l = n.query,
			r = {};
		t = t || e, n.elem = e, n.options = t, n.options.format || (n.options.format = a.format), n.options.start = n.options.start || "", n.mm = r.mm = [n.options.min || a.min, n.options.max || a.max], n.mins = r.mm[0].match(/\d+/g), n.maxs = r.mm[1].match(/\d+/g), n.box ? n.shde(n.box) : (o = s[i]("div"), o.id = d[0], o.className = d[0], o.style.cssText = "position: absolute;", o.setAttribute("name", "laydate-v" + laydate.v), o.innerHTML = r.html = '<div class="laydate_top"><div class="laydate_ym laydate_y" id="laydate_YY"><a class="laydate_choose laydate_chprev laydate_tab"><cite></cite></a><input id="laydate_y" readonly><label></label><a class="laydate_choose laydate_chnext laydate_tab"><cite></cite></a><div class="laydate_yms"><a class="laydate_tab laydate_chtop"><cite></cite></a><ul id="laydate_ys"></ul><a class="laydate_tab laydate_chdown"><cite></cite></a></div></div><div class="laydate_ym laydate_m" id="laydate_MM"><a class="laydate_choose laydate_chprev laydate_tab"><cite></cite></a><input id="laydate_m" readonly><label></label><a class="laydate_choose laydate_chnext laydate_tab"><cite></cite></a><div class="laydate_yms" id="laydate_ms">' + function() {
			var e = "";
			return n.each(new Array(12), function(t) {
				e += '<span m="' + t + '">' + n.digit(t + 1) + "月</span>"
			}), e
		}() + "</div></div></div>" + n.viewtb + '<div class="laydate_bottom"><ul id="laydate_hms"><li class="laydate_sj">时间</li><li><input readonly>:</li><li><input readonly>:</li><li><input readonly></li></ul><div class="laydate_time" id="laydate_time"></div><div class="laydate_btn"><a id="laydate_clear">清空</a><a id="laydate_today">今天</a><a id="laydate_ok">确认</a></div>' + (a.isv ? '<a href="http://sentsin.com/layui/laydate/" class="laydate_v" target="_blank">laydate-v' + laydate.v + "</a>" : "") + "</div>", s.body.appendChild(o), n.box = l("#" + d[0]), n.events(), o = null), n.follow(n.box), t.zIndex ? n.box.style.zIndex = t.zIndex : n.removeCssAttr(n.box, "z-index"), n.stopMosup("click", n.box), n.initDate(), n.iswrite(), n.check()
	}, n.reshow = function() {
		return n.each(n.query("#" + d[0] + " .laydate_show"), function(e, t) {
			n.removeClass(t, "laydate_show")
		}), this
	}, n.close = function() {
		n.reshow(), n.shde(n.query("#" + d[0]), 1), n.elem = null
	}, n.parse = function(e, t, s) {
		return e = e.concat(t), s = s || (n.options ? n.options.format : a.format), s.replace(/YYYY|MM|DD|hh|mm|ss/g, function(t, a) {
			return e.index = 0 | ++e.index, n.digit(e[e.index])
		})
	}, n.creation = function(e, t) {
		var a = (n.query, n.hmsin),
			s = n.parse(e, [a[0].value, a[1].value, a[2].value]);
		n.elem[d.elemv] = s, t || (n.close(), "function" == typeof n.options.choose && n.options.choose(s))
	}, n.events = function() {
		var e = n.query,
			a = {
				box: "#" + d[0]
			};
		n.addClass(s.body, "laydate_body"), d.tds = e("#laydate_table td"), d.mms = e("#laydate_ms span"), d.year = e("#laydate_y"), d.month = e("#laydate_m"), n.each(e(a.box + " .laydate_ym"), function(e, t) {
			n.on(t, "click", function(t) {
				n.stopmp(t).reshow(), n.addClass(this[l]("div")[0], "laydate_show"), e || (a.YY = parseInt(d.year.value), n.viewYears(a.YY))
			})
		}), n.on(e(a.box), "click", function() {
			n.reshow()
		}), a.tabYear = function(e) {
			0 === e ? n.ymd[0]-- : 1 === e ? n.ymd[0]++ : 2 === e ? a.YY -= 14 : a.YY += 14, e < 2 ? (n.viewDate(n.ymd[0], n.ymd[1], n.ymd[2]), n.reshow()) : n.viewYears(a.YY)
		}, n.each(e("#laydate_YY .laydate_tab"), function(e, t) {
			n.on(t, "click", function(t) {
				n.stopmp(t), a.tabYear(e)
			})
		}), a.tabMonth = function(e) {
			e ? (n.ymd[1]++, 12 === n.ymd[1] && (n.ymd[0]++, n.ymd[1] = 0)) : (n.ymd[1]--, n.ymd[1] === -1 && (n.ymd[0]--, n.ymd[1] = 11)), n.viewDate(n.ymd[0], n.ymd[1], n.ymd[2])
		}, n.each(e("#laydate_MM .laydate_tab"), function(e, t) {
			n.on(t, "click", function(t) {
				n.stopmp(t).reshow(), a.tabMonth(e)
			})
		}), n.each(e("#laydate_ms span"), function(e, t) {
			n.on(t, "click", function(e) {
				n.stopmp(e).reshow(), n.hasClass(this, d[1]) || n.viewDate(n.ymd[0], 0 | this.getAttribute("m"), n.ymd[2])
			})
		}), n.each(e("#laydate_table td"), function(e, t) {
			n.on(t, "click", function(e) {
				n.hasClass(this, d[1]) || (n.stopmp(e), n.creation([0 | this.getAttribute("y"), 0 | this.getAttribute("m"), 0 | this.getAttribute("d")]))
			})
		}), d.oclear = e("#laydate_clear"), n.on(d.oclear, "click", function() {
			n.elem[d.elemv] = "", n.close()
		}), d.otoday = e("#laydate_today"), n.on(d.otoday, "click", function() {
			var e = new Date;
			n.creation([e.getFullYear(), e.getMonth() + 1, e.getDate()])
		}), d.ok = e("#laydate_ok"), n.on(d.ok, "click", function() {
			n.valid && n.creation([n.ymd[0], n.ymd[1] + 1, n.ymd[2]])
		}), a.times = e("#laydate_time"), n.hmsin = a.hmsin = e("#laydate_hms input"), a.hmss = ["小时", "分钟", "秒数"], a.hmsarr = [], n.msg = function(t, s) {
			var i = '<div class="laydte_hsmtex">' + (s || "提示") + "<span>×</span></div>";
			"string" == typeof t ? (i += "<p>" + t + "</p>", n.shde(e("#" + d[0])), n.removeClass(a.times, "laydate_time1").addClass(a.times, "laydate_msg")) : (a.hmsarr[t] ? i = a.hmsarr[t] : (i += '<div id="laydate_hmsno" class="laydate_hmsno">', n.each(new Array(0 === t ? 24 : 60), function(e) {
				i += "<span>" + e + "</span>"
			}), i += "</div>", a.hmsarr[t] = i), n.removeClass(a.times, "laydate_msg"), n[0 === t ? "removeClass" : "addClass"](a.times, "laydate_time1")), n.addClass(a.times, "laydate_show"), a.times.innerHTML = i
		}, a.hmson = function(t, a) {
			var s = e("#laydate_hmsno span"),
				i = n.valid ? null : 1;
			n.each(s, function(e, s) {
				i ? n.addClass(s, d[1]) : n.timeVoid(e, a) ? n.addClass(s, d[1]) : n.on(s, "click", function(e) {
					n.hasClass(this, d[1]) || (t.value = n.digit(0 | this.innerHTML))
				})
			}), n.addClass(s[0 | t.value], "laydate_click")
		}, n.each(a.hmsin, function(e, t) {
			n.on(t, "click", function(t) {
				n.stopmp(t).reshow(), n.msg(e, a.hmss[e]), a.hmson(this, e)
			})
		}), n.on(s, "mouseup", function() {
			var t = e("#" + d[0]);
			t && "none" !== t.style.display && (n.check() || n.close())
		}).on(s, "keydown", function(e) {
			e = e || t.event;
			var a = e.keyCode;
			13 === a && n.elem && n.creation([n.ymd[0], n.ymd[1] + 1, n.ymd[2]])
		})
	}, laydate.reset = function() {
		n.box && n.elem && n.follow(n.box)
	}, laydate.now = function(e, t) {
		var a = new Date(0 | e ? function(e) {
			return e < 864e5 ? +new Date + 864e5 * e : e
		}(parseInt(e)) : +new Date);
		return n.parse([a.getFullYear(), a.getMonth() + 1, a.getDate()], [a.getHours(), a.getMinutes(), a.getSeconds()], t)
	}, layui.addcss("modules/laydate/laydate.css", function() {}, "laydatecss"), e("laydate", laydate)
});